package com.robot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.robot.common.result.PageResult;
import com.robot.dao.dto.*;
import com.robot.dao.entity.Robot;
import com.robot.dao.vo.AgentDetailVO;
import com.robot.dao.vo.FileSetOverViewVO;

import java.io.IOException;

public interface RobotService{

    /**
     * 根据用户ID查询机器人列表
     *
     * @param robotPageQueryDTO
     * @return
     */
    PageResult queryByUserId(RobotPageQueryDTO robotPageQueryDTO);

    /**
     * 根据模板创建机器人
     *
     * @param iddto
     * @return
     */
    AgentDetailVO createByTemplate(IDDTO iddto);

    /**
     * '
     * 根据机器人ID查询机器人详情
     *
     * @param
     * @return
     */
    AgentDetailVO queryRobotIdByRobotId(QueryRobotDetailDTO queryRobotDetailDTO);



    /**
     * 删除机器人（逻辑删除）
     *
     * @param iddto
     */
    void delete(IDDTO iddto);

    /**
     * 修改机器人信息
     *
     * @param
     */
    void updateRobotDetail(AgentDTO agentDTO);

    /**
     * 一句话新建机器人
     *
     * @param createRobotDTO
     * @return
     */
    AgentDetailVO createBySentence(CreateRobotDTO createRobotDTO) throws IOException;

    /**
     * 上传文件新建机器人
     *
     * @param createRobotDTO
     * @return
     */
    AgentDetailVO createByUploadFiles(CreateRobotDTO createRobotDTO) throws IOException;

    /**
     * 分页查询机器人列表
     *
     * @param robotPageQueryDTO
     * @return
     */
    PageResult queryRobotList(RobotPageQueryDTO robotPageQueryDTO);

    /**
     * 每天五点定时更新机器人热度星级
     *
     * @return
     */
    Integer updateRobotHeatStars();

    /**
     * 新建数据源组件
     *
     * @param fileSetDTO
     * @return
     */
    FileSetOverViewVO createFileSetActionUnit(FileSetDTO fileSetDTO);

    void topCategoryName (String categoryName,String companyCode,String userId);

}
